<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<%@ page import="com.ibatis.sqlmap.implgen.Util" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedCacheModel" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedClass" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedMethod" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedParameter" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedParameterMap" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedResult" %>
<%@ page import="com.ibatis.sqlmap.implgen.bean.ParsedResultMap" %>
<%! public ParsedClass parsedClass; %>

<!--

  Generated implementation of <%= parsedClass.getFullyQualifiedName() %>
 
  Generated by ibatis-implgen
  http://code.google.com/p/ibatis-implgen/

  DO NOT EDIT

-->
<sqlMap namespace="<%= parsedClass.getFullyQualifiedName() %>">

    <% for (ParsedCacheModel cacheModel : parsedClass.getCacheModels()) { %>
    <cacheModel id="<%= cacheModel.getId() %>" type="<%= cacheModel.getType() %>">
        <% if ( cacheModel.isFlushInterval() ) { %><flushInterval hours="<%= cacheModel.getFlushIntervalHours() %>" /><% } %>
    </cacheModel>
    <% } %>

    <% for (ParsedParameterMap parameterMap : parsedClass.getParameterMaps()) { %>
    <parameterMap id="<%= parameterMap.getId() %>" class="<%= parameterMap.getJavaClass() %>"><%--
        --%><% for (ParsedParameter result : parameterMap.getParameters()) { %>
        <parameter property="<%= result.getProperty() %>" <%--
                --%><% if ( !Util.empty(result.getJavaType()) ) { %> javaType="<%= result.getJavaType() %>" <% } %><%--
                --%><% if ( !Util.empty(result.getJdbcType()) ) { %> jdbcType="<%= result.getJdbcType() %>" <% } %><%--
                --%><% if ( !Util.empty(result.getMode()) ) { %> mode="<%= result.getMode() %>" <% } %><%--
                --%><% if ( result.isAnyNullValue() ) { %> nullValue="<%= result.getNullValue() %>" <% } %> /><%--
        --%><% } %>
    </parameterMap>
    <% } %>



    <% for (ParsedResultMap resultMap : parsedClass.getResultMaps()) { %>
        <% if ( Util.empty(resultMap.getJavaClass())) { continue; } %>
    <resultMap id="<%= resultMap.getId() %>" class="<%= resultMap.getJavaClass() %>" <%--
            --%><% if ( resultMap.isAnyExtendsMap() ) { %> extends="<%= resultMap.getExtendsMap() %>" <% } %> ><%--
        --%><% for (ParsedResult result : resultMap.getResults()) { %>
        <result property="<%= result.getProperty() %>" <%--
                --%><% if ( !Util.empty(result.getJavaType()) ) { %> javaType="<%= result.getJavaType() %>" <% } %><%--
                --%> column="<%= result.getColumn() %>"<%--
                --%><% if ( !Util.empty(result.getJdbcType()) ) { %> jdbcType="<%= result.getJdbcType() %>" <% } %><%--
                --%><% if ( result.isAnyNullValue() ) { %> nullValue="<%= result.getNullValue() %>" <% } %> /><%--
        --%><% } %>
    </resultMap>
    <% } %>


    <% for (ParsedMethod method : parsedClass.getMethods()) { %>
        <% if ( ParsedMethod.Type.SELECT.equals(method.getTypeOrOverriden()) ) { %>
    <select id="<%= method.getIdForIbatis() %>" <%--
            --%><% if ( method.isAnyParameterClass() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %><%--
            --%><% if ( method.isAnyResultSetType() ) { %> resultSetType="<%= method.getResultSetType() %>" <% } %><%--
            --%><% if ( method.isAnyCacheModel() ) { %> cacheModel="<%= method.getCacheModel() %>" <% } %><%--
            --%><% if ( method.isAnyResultMap() ) { %> resultMap="<%= method.getResultMap() %>" <% } %><%--
            --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
            --%><% if ( method.isAnyResultClass() ) { %> resultClass="<%= method.getReturnsType() %>" <% } %> >
        <%= method.getSqlEscaped() %>
    </select>

        <% } else if ( ParsedMethod.Type.UPDATE.equals(method.getTypeOrOverriden()) ) { %>
    <update id="<%= method.getIdForIbatis() %>" <%--
               --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
                --%><% if ( method.isAnyParameters() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %>  >
        <%= method.getSqlEscaped() %>
    </update>

        <% } else if ( ParsedMethod.Type.DELETE.equals(method.getTypeOrOverriden()) ) { %>
    <delete id="<%= method.getIdForIbatis() %>" <%--
            --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
            --%><% if ( method.isAnyParameters() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %>   >
        <%= method.getSqlEscaped() %>
    </delete>

        <% } else if ( ParsedMethod.Type.INSERT.equals(method.getTypeOrOverriden()) ) { %>
    <insert id="<%= method.getIdForIbatis() %>" <%--
            --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
            --%><% if ( method.isAnyParameters() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %>  >
        <%= method.getSqlEscaped() %>
    </insert>

        <% } else if ( ParsedMethod.Type.PROCEDURE.equals(method.getTypeOrOverriden()) ) { %>
    <procedure id="<%= method.getIdForIbatis() %>" <%--
               --%><% if ( method.isAnyParameterClass() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %><%--
               --%><% if ( method.isAnyCacheModel() ) { %> cacheModel="<%= method.getCacheModel() %>" <% } %><%--
               --%><% if ( method.isAnyResultMap() ) { %> resultMap="<%= method.getResultMap() %>" <% } %><%--
               --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
               --%><% if ( method.isAnyResultClass() ) { %> resultClass="<%= method.getReturnsType() %>" <% } %>  >
        <%= method.getSqlEscaped() %>
    </procedure>

        <% } else { // ParsedMethod.Type.STATEMENT %>
    <statement id="<%= method.getIdForIbatis() %>" <%--
           --%><% if ( method.isAnyParameterClass() ) { %> parameterClass="<%= method.getParameterClass() %>" <% } %><%--
           --%><% if ( method.isAnyCacheModel() ) { %> cacheModel="<%= method.getCacheModel() %>" <% } %><%--
           --%><% if ( method.isAnyResultMap() ) { %> resultMap="<%= method.getResultMap() %>" <% } %><%--
           --%><% if ( method.isAnyParameterMap() ) { %> parameterMap="<%= method.getParameterMap() %>" <% } %><%--
           --%><% if ( method.isAnyResultClass() ) { %> resultClass="<%= method.getReturnsType() %>" <% } %>  >
        <%= method.getSqlEscaped() %>
    </statement>

        <% } %>
    <% } %>

</sqlMap>

